package iedcyt.acute.controller;

import iedcyt.acute.controller.listeners.signComparison.*;
import iedcyt.acute.model.SignComparisonModel;
import iedcyt.acute.view.SignComparisionView;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Listener;
/**
 * Servicio que inicia el modelo y ofrece los diversos controladores a la vista
 * @author 53385255R
 *
 */
public class SignComparisonController  {

	private SignComparisionView _view;
	private SignComparisonModel _model;
	/**
	 * Se regitra la vista y inicializa el modelo
	 * @param view
	 */
	public SignComparisonController(SignComparisionView view){
		_view = view;
		_model = new SignComparisonModel();
	}
	
	/**
	 * Inicializa la interfaz segun el modelo
	 */
	public void iniView() {
		_view.loadAuthors(_model.getAuthors());
		_view.enabledNextPrev(true);
		_view.setSearchText(_model.getSearch());
		_view.setFilterCode(_model.getFilterCode());
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public SelectionListener getPrevSelectionListener() {
		return new PrevSelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public SelectionListener getNextSelectionListener() {
		return new NextSelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getAuthorSelectionListener() {
		return new AuthorSelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getAuthorKeyDownListener() {
		return new AuthorsKeyDownListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getSign1SelectionListener() {
		return new Sign1SelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getSign2SelectionListener() {
		return new Sign2SelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getSign1KeyDownListener() {
		return new Sign1KeyDownListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getDocuments1SelectionListener() {
		return new Documents1SelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getDocuments1KeyDownListener() {
		return new Documents1KeyDownListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getDocuments2SelectionListener() {
		return new Documents2SelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getDocuments2KeyDownListener() {
		return new Documents2KeyDownListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getCenters1SelectionListener() {
		return new Centers1SelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getCenters2SelectionListener() {
		return new Centers2SelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getCorps1KeyDownListener() {
		return new Corps1KeyDownListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getCorps1SelectionListener() {
		return new Corps1SelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getCorps2SelectionListener() {
		return new Corps2SelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getCorps2KeyDownListener() {
		return new Corps2KeyDownListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public SelectionListener getComboFilterSelection() {
		return new ComboFilterSelection(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getSearchAuthorTxtKeyDownListener() {
		return new SearchAuthorTxtKeyDownListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getSearchAuthorTxtFocusInListener() {
		return new SearchAuthorTxtFocusInListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getSign2KeyDownListener() {
		return new Sign2KeyDownListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getSignsColl1SelectionListener() {
		return new SignsColl1SelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getSignsColl2SelectionListener() {
		return new SignsColl2SelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getSignsColl1KeyDownListener() {
		return new SignsColl1KeyDownListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getSignsColl2KeyDownListener() {
		return new SignsColl2KeyDownListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getAuthorsColl1SelectionListener() {
		return new AuthorsColl1SelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getAuthorsColl2SelectionListener() {
		return new AuthorsColl2SelectionListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getAuthorsColl1KeyDownListener() {
		return new AuthorsColl1KeyDownListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getAuthorsColl2KeyDownListener() {
		return new AuthorsColl2KeyDownListener(_view, _model);
	}
	/**
	 * @return controlador para la accion determinada
	 */
	public Listener getSign2CorpsCheckListener() {
		return new Sign2CorpsCheckListener(_view, _model);
	}

}
